Ansible CMD

ansible-doc

  1. ansible-doc 针对ansible 模块说明
// 列出支持的模块
ansible-doc –l
// 模块功能说明
ansible-doc ping

ansible-hoc

Ansiable ad-hoc

ansible-playbook

预定义playbook.yml 能够实现批量操作.

ansible-playbook playbook.yml

ansible-console

适用于临时性的批量某些操作,尤其是命令并不多时。

ansible-console
的“root@all(4)[f:5]$”是提示符,该提示符表示“当前的使用用户@当前所在的Inventory中定义的组,默认是all分组(Inventory中all组所有主机的数量)[forks:线程数]$”

console

cd webs  #切换当前分组
forks 2  #设置并发数量
list     #显示当前分组有多少主机

service

service 用于管理操作系统相关服务

help service

例如1:关闭防火墙

root@all (3)[f:2]$ service name=firewalld state=stopped

inventory 文件配置

Inventory是Ansible管理主机信息的配置文件,相当于系统HOSTS文件的功能,默认存放在/etc/ansible/hosts。

ansible -i /etc/ansible/hosts dbservers -m ping

inventory 配置文件说明

# “# ”开头的行表示该行为注释行,即当时行的配置不生效
# Inventory可以直接为IP地址
192.168.37.149
# Inventory同样支持Hostname的方式,后跟冒号加数字表示端口号,默认22号端口
  ntp.magedu.com:2222
  nfs.magedu.com
# 中括号内的内容表示一个分组的开始,紧随其后的主机均属于该组成员,空行后的主机亦属于该组,即
  web2.magedu.com这台主机也属于[websevers]组
[websevers]
web1.magedu.com
web[10:20].magedu.com # [10:20]表示10~20之间的所有数字(包括10和20),即表示web10.
                       magedu.com、web11.magedu.com……web20.magedu.com的所有主机

web2.magedu.com[dbservers]
db-a.magedu.com
db-[b:f].magedu.com # [b:f]表示b到f之间的所有数字(包括b和f),即表示db-b.magedu.
                       com、db-e.magedu.com……db-f.magedu.com的所有主机

主机变量

[webservers]
web1.magedu.com http_port=808 maxRequestsPerChild=801 # 自定义http_port的端口号为808,配置maxRequestsPerChild为801

正则表达式

检测Inventory中所有以192.168开头的服务器存活信息:

ansible ~192\.168\.[0-9]\{\2}.[0-9]\{2,} -m ping